#include<stdio.h>

/**
 * 由于if语句是个条件判断语句，里面是有两个简单语句进行或运算组合的复合语句
 * 因为或运算中，只要参与或运算的两个表达式的值都为真，则整个运算结果为真，而由于变量i的值为6，已经大于0了，而该语句已经为true，
 * 则不需要执行后续的j+操作来判断真假，所以后续的j++操作不需要执行，j的值仍然为1。
 * 
 * 因为短路计算的问题，对于&&操作，由于在两个表达式的返回值中，如果有一个为假则整个表达式的值都为假，
 * 如果前一个语句的返回值为 false，则无论后一个语句的返回值是真是假，整个条件判断都为假，不用执行后一个语句。
 */
int main()
{
   int i = 6;
   int j = 1;
   if(i>0||(j++)>0);
   printf("%d\r\n",j);  // 结果为1
   if(i>0||(++j)>0);
   printf("%d\r\n",j);  // 结果为1
   if((++j)>0||i>0);
   printf("%d\r\n",j);  // 结果为2
   return 0;
}